Multiple core processors are known in the art. Two or more cores can be present in a single processor. This allows parts of software programs to be executed in parallel, that is, simultaneously, thus reducing the execution time. However, the processor cores typically share some resources, such as memory or a data bus. When two or more cores attempt to access a common resource simultaneously, a conflict occurs. Such a conflict is likely to cause delays, as at least one of the cores will have to wait for another core to finish its resource access. These delays can significantly reduce the benefits of having multiple cores.
It has been proposed to assign priorities to the cores of a multiple core processor, cores having a higher priority being allowed to access a common resource before cores having a lower priority. Although assigning priorities establishes a clear order in which cores are granted access, some low priority cores may be denied access. As a result, some software program parts may be significantly delayed or may not be executed at all.